package com.frejoys.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.frejoys.common.dto.common.IdDto;
import com.frejoys.common.dto.store.ChangeSortDto;
import com.frejoys.common.dto.store.StoreCategorySaveDto;
import com.frejoys.common.dto.store.StoreCategoryUpdateDto;
import com.frejoys.common.vo.app.CategoryListVo;
import com.frejoys.common.vo.app.StoreCategoryListVo;
import com.frejoys.common.vo.store.StoreCategoryVo;
import com.frejoys.dao.entity.StoreCategory;

import java.util.List;

/**
 * @author wangzhicheng
 * @version 1.0
 * @date 2024/5/21 10:19
 */
public interface StoreCategoryService extends IService<StoreCategory> {

    default StoreCategory getOnly(QueryWrapper<StoreCategory> wrapper) {
        wrapper.last("limit 1");
        return this.getOne(wrapper);
    }

    default StoreCategory getOnly(LambdaQueryWrapper<StoreCategory> wrapper) {
        wrapper.last("limit 1");
        return this.getOne(wrapper);
    }
    /**
     * 根据店铺id获取店铺类目
     */
    List<StoreCategoryVo> listStoreCategory(Integer storeId);


    /**
     * 根据店铺id获取店铺正常类目
     */
    List<StoreCategoryVo> list(Integer storeId);

    /**
     * 新增店铺类目
     */
    boolean addInfo(StoreCategorySaveDto dto);

    /**
     * 修改店铺类目
     */
    boolean upInfo(StoreCategoryUpdateDto dto);

    /**
     * 删除分类
     */
    boolean delInfo(IdDto dto,Long userId);

    /**
     * 修改品类顺序
     */
    boolean changeSort(List<ChangeSortDto> dtos);

    //根据店铺id查询店铺下的分类
    List<StoreCategoryListVo> storeIdCategory(Integer storeId);
}
